#pragma once
#include "cybertron/sensor/noise/NoiseBase.hpp"
#include "cybertron/sensor/noise/WhiteNoise.hpp"

CYBERTRON_BEGIN

class BiasNoise : public NoiseBase
{
public:
	BiasNoise(float bias = 0.01, bool bWithWhiteNoise = false);
	BiasNoise(const vec2& bias, bool bWithWhiteNoise = false);
	BiasNoise(const vec3& bias, bool bWithWhiteNoise = false);
	virtual ~BiasNoise();

	const vec3& bias() const { return m_bias; }
	void setBias(const vec3& bias);
	vec3 update() override;

protected:
	vec3						m_bias;
	std::shared_ptr<WhiteNoise>	m_whiteNoisePtr;
};

CYBERTRON_END